home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 038a / pbwiz11.zip / VGADEMO.BAS < prev    next >
BASIC Source File  |  1992-01-11  |  3KB  |  102 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |         PBWIZ  Copyright (c) 1991-1992  Thomas G. Hanlin III         |
  4. '   |                                                                      |
  5. '   |                      PowerBASIC Wizard's Library                     |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9.    $INCLUDE "equipmen.inc"
  10.    $LINK "equipmen.obj"
  11.  
  12.    $INCLUDE "g13.inc"
  13.    $LINK "g13a.obj"
  14.    $LINK "g13b.pbu"
  15.  
  16.    $INCLUDE "gn0.inc"
  17.    $LINK "gn0a.obj"
  18.    $LINK "gn0b.pbu"
  19.  
  20.    DEFINT A-Z
  21.  
  22.    RANDOMIZE TIMER
  23.  
  24.    CALL GetDisplay (Adapter, Mono)
  25.  
  26.    IF Adapter <> 6 THEN
  27.       PRINT "Sorry.  VGADEMO requires a VGA to run."
  28.       END
  29.    END IF
  30.  
  31.    CALL G13Mode (1)                    ' ...put into low-res VGA mode
  32.    CALL G13Color (4, 2)
  33.    CALL G13WriteLn ("PBWiz gives you access to 256-color VGA")
  34.    CALL G13Color (0, 3)
  35.    CALL G13WriteLn ("modes from  320x200 to 360x480  on any ")
  36.    CALL G13Color (7, 1)
  37.    CALL G13WriteLn ("standard VGA.   This is 320x200.   The ")
  38.    CALL G13Color (5, 8)
  39.    CALL G13WriteLn ("360x480 mode is shown on the next page.")
  40.    CALL G13WriteLn ("")
  41.    CALL G13Color (4, 14)
  42.    CALL G13WriteLn ("Full text & graphics support included. ")
  43.    FOR Y = 0 TO 31
  44.       CALL G13Color (Y + 16, 0)
  45.       CALL G13Box (Y, Y + 64, 319 - Y, (64 - Y) + 120, (Y = 100))
  46.       IF Y > 15 THEN
  47.          CALL G13Polygon (Y * 15 - 194, 112, 5, INT(RND * 6 + 1) + 2, .75 * 3.141593)
  48.          CALL G13Color (64 - Y, 0)
  49.          CALL G13Polygon (Y * 15 - 194, 136, 5, INT(RND * 6 + 1) + 2, 0)
  50.       END IF
  51.    NEXT
  52.    CALL G13Locate (25, 14)
  53.    CALL G13Color (15, 4)
  54.    CALL G13Write ("Press any key")
  55.  
  56.    DO
  57.    LOOP WHILE LEN(INKEY$)
  58.    DO
  59.       ky$ = INKEY$
  60.    LOOP UNTIL LEN(ky$)
  61.    IF ky$ = CHR$(27) THEN GOTO Done
  62.  
  63.    CALL GN0Mode (1)
  64.  
  65.    CALL GN0Color (C, 0)
  66.    CALL GN0Cls
  67.    CALL GN0Locate (60, 1)
  68.    CALL GN0Color (30, 4)
  69.    CALL GN0Write ("360x480 graphics mode. Press any key to exit")
  70.  
  71.    MaxX = 359
  72.    MaxY = 479 - 9
  73.    MaxColor = 255
  74.  
  75.    X = INT(RND * MaxX \ 2)
  76.    Y = INT(RND * MaxY \ 2)
  77.    C = INT(RND * (MaxColor - 1) + 1)
  78.  
  79.    DO
  80.       CALL GN0Plot (X, Y)
  81.       CALL GN0Plot (MaxX - X, Y)
  82.       CALL GN0Plot (MaxX - X, MaxY - Y)
  83.       CALL GN0Plot (X, MaxY - Y)
  84.       SELECT CASE INT(RND * 3)
  85.          CASE 0: X = X - 1: IF X < 0 THEN X = MaxX \ 2
  86.          CASE 1: X = X + 1: IF X > MaxX \ 2 THEN X = 0
  87.          CASE ELSE
  88.       END SELECT
  89.       SELECT CASE INT(RND * 3)
  90.          CASE 0: Y = Y - 1: IF Y < 0 THEN Y = MaxY \ 2
  91.          CASE 1: Y = Y + 1: IF Y > MaxY \ 2 THEN Y = 0
  92.          CASE ELSE
  93.       END SELECT
  94.       IF INT(RND * 20) = 1 THEN
  95.          C = INT(RND * (MaxColor - 1) + 1)
  96.          CALL GN0Color (C, 0)
  97.       END IF
  98.    LOOP UNTIL LEN(INKEY$)
  99.  
  100. Done:
  101.    CALL GN0Mode (0)                    ' restore text mode
  102.